package com.example.springbootdemo.utils;

/**
 * 功能说明：异常信息枚举类
 * 　* 开发人员：WuZhen jujangai@163.com <br>
 * 开发时间：2020/10/12 <br>
 * 　* 功能描述：此处枚举的具体内容根据自己的业务需要进行添加，此处的状态码值自己设置，一般也可以使用HttpStatus的状态码，那个和HTTP协议的规范一直，如2xx表示请求成功，4xx表示资源找不到，500表示服务器错误等等
 */
public enum ResultEnum {
    /**
     * 成功
     */
    REQUEST_SUCCESS(0, "成功"),

    /**
     * 失败
     */
    REQUEST_FAILED(1, "失败"),

    /**
     * 未知错误
     */
    UNKNOWN_ERROR(-1, "未知错误"),

    /**
     * AccessTokenError
     */
    AccessTokenError(1400, "用户登录令牌失效"),
    /**
     * UNAUTHORIZED
     */
    UNAUTHORIZED(1401, "用户未登录"),
    /**
     * UNAUTHORIZED
     */
    AuthError(1402, "用户名或密码错误"),

    /**
     * AccessDenied
     */
    AccessDenied(1403, "用户没有权限访问"),

    UserDisabled(1405, "用户被禁用"),

    AbnormalAccess(1406, "用户异常访问"),
    /**
     * 参数验证模块
     */
    ParameterValidError(1410, "参数验证错误"),

    SignatureValidError(1411, "签名验证错误"),

    TimeStampExpired(1412, "时间戳过期"),

    ERROR_DENY(1413, "时间戳不合法"),

    INVALID_TIME_TYPE(1414, "时间转换失败"),
    /**
     * 微信验证
     */
    WX_LOGIN_FAILURE(1451, "微信登录失败"),
    WX_PAY_VERIFY_FAILURE(1452, "微信签名验证错误:非微信发送"),
    WX_PAY_UNIFIEDORDER(1453, "微信下单失败"),

    /**
     * 支付
     */
    PAY_SPECIES_ERROR(1480, "支付种类错误"),
    /**
     * 参数逻辑层处理失败
     */
    DataDecryptFail(1201, "数据解密失败"),

    PHONE_FORMAT_ERR(1202, "手机号格式不正确"),

    USER_LIKE_ALREADY(1203, "用户已经点过赞了"),

    USER_UNLIKE_ALREADY(1204, "用户已经取消过点赞了"),

    INVALID_TYPE(1205, "无效的点赞内容类型"),

    COORDINATE_NULL(1206, "坐标不能为空"),
    BY_ZERO(1250, "除数不能为零"),

    /**
     * 业务逻辑层错误码
     */
    STOCK_SHORTAGE(1301, "库存不足"),
    PRICE_ERROR(1302, "价格校验错误"),
    INVALID_COUPON_USE(1303,"使用了不匹配的优惠券"),
    COORDINATE_ERROR(1304, "坐标格式错误"),
    GUIDER_OPERATE_CONVERGE_ERROR(1601, "只能操作自己创建的集结"),
    COUPON_OPERATE_CONVERGE_ERROR(1701, "优惠券折扣异常"),
    COUPON_RECEIVE_LIMIT_ERROR(1702, "该优惠券领取达到上限"),
    COUPON_RECEIVE_AUTHORITY_ERROR(1703, "没有权限领取该优惠券"),
    COUPON_RECEIVE_EXPIRED(1704, "该优惠券已过期"),

    /**
     * InnerError
     */
    InnerError(1500, "系统内部错误");


    /**
     * 状态
     */
    private Integer code;
    /**
     * 含义
     */
    private String message;

    ResultEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    public Integer getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }
}
